package com.qjq.glasses_shopping.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.qjq.glasses_shopping.pojo.Brand;
import com.qjq.glasses_shopping.result.BaseResult;
import com.qjq.glasses_shopping.service.BrandService;

import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/brand")
public class BrandController {
    @Resource
    private BrandService brandService;

    /**
     * 根据id查询品牌
     *
     * @param id 品牌id
     * @return 返回查询到的品牌
     */
    @GetMapping("/findById")
    public BaseResult<Brand> findBrandById(long id) {
        Brand brand = brandService.findById(id);
        return BaseResult.ok(brand);
    }

    /**
     * 查询全部品牌
     *
     * @return 返回全部品牌
     */
    @GetMapping("/all")
    public BaseResult<List<Brand>> findAllBrand() {
        List<Brand> all = brandService.findAll();
        return BaseResult.ok(all);
    }

    /**
     * 添加品牌
     *
     * @param brand 品牌信息
     * @return 返回执行结果
     */
    @PostMapping("/add")
    public BaseResult addBrand(@RequestBody Brand brand) {
        brandService.add(brand);
        return BaseResult.ok();
    }

    /**
     * 修改品牌
     *
     * @param brand 品牌信息
     * @return 返回执行结果
     */
    @PutMapping("/update")
    public BaseResult updateBrand(@RequestBody Brand brand) {
        brandService.update(brand);
        return BaseResult.ok();
    }

    /**
     * 根据id删除品牌
     *
     * @param id 品牌id
     * @return 返回执行结果
     */
    @DeleteMapping("/delete")
    public BaseResult deleteBrand(long id) {
        brandService.delete(id);
        return BaseResult.ok();
    }

    /**
     * 分页查询品牌
     *
     * @param brand 品牌查询对象
     * @param page  页码
     * @param size  分页条数
     * @return 查询结果
     */
    @GetMapping("/search")
    public BaseResult<Page<Brand>> searchBrand(Brand brand, int page, int size) {
        Page<Brand> page1 = brandService.search(brand, page, size);
        return BaseResult.ok(page1);
    }
}
